package com.springboot.frame.annotation;

import com.springboot.frame.Constant;

import java.lang.annotation.*;

/**
 * 逻辑删除注解 <p>
 * <pre>
 * 逻辑删除注解,注解在字段上.
 * 当执行删除时,会执行更新操作.
 * 如:原sql: delete from user where name='张三';
 * 配置后:update user set name='张三',isDelete=1;
 * 当执行查询时,会执行逻辑查询操作
 * 如:原sql: select * from user;
 * 配置后:select * from user where isDelete=0;
 * </pre>
 *
 * @author liheng
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface LogicDelete {

  /**
   * 默认值，也称未删除值，或者表示数据仍存在的值
   *
   * @return 默认值
   */
  int value() default Constant.DELETE;

  /**
   * 删除值，删除后的值
   *
   * @return 删除值
   */
  int delValue() default Constant.DELETED;

}
